home *** CD-ROM | disk | FTP | other *** search
/ The X-Philes (2nd Revision) / The X-Philes Number 1 (1995).iso / xphiles / hp48hor1 / backall.src < prev    next >
Text File  |  1991-05-29  |  3KB  |  112 lines

  1. %%HP: T(3)A(D)F(.);
  2. @ BACKALL by Darryl Okahata
  3. DIR
  4.   BACKUP
  5.     \<< STD PATH 0 0 \-> p sz n
  6.       \<< L
  7.         IFERR CCHECK
  8.         THEN p EVAL ERRM DOERR
  9.         END CLLCD "CHECKING" 4 DISP 0 2
  10.         FOR p p
  11.           IFERR PVARS
  12.           THEN DROP { } ""
  13.           END
  14.           IF TYPE 0 ==
  15.           THEN OBJ\->
  16.             IF DUP 0 >
  17.             THEN DUP 'n' STO+ 1 SWAP
  18.               START RCL BYTES SWAP DROP
  19.                 IF DUP sz >
  20.                 THEN 'sz' STO
  21.                 ELSE DROP
  22.                 END
  23.               NEXT
  24.             ELSE DROP
  25.             END
  26.           ELSE DROP
  27.           END
  28.         NEXT
  29.         IF sz DUP MEM M + n S * + >
  30.         THEN DROP p EVAL 1 DOERR
  31.         END 'NEEDED' STO RCLF 'FLAGS' STO { } DUP DUP 'PV2' STO 'PV1'
  32.          STO 'PV0' STO OPENIO 0 2
  33.         FOR p p
  34.           IFERR PVARS
  35.           THEN DROP { } ""
  36.           END
  37.           IF TYPE 0 ==
  38.           THEN OBJ\->
  39.             IF DUP 0 >
  40.             THEN 1 SWAP
  41.               FOR i CLLCD "Port " p + C$ 3 : " + OVER + C$ 1 " + 4 DISP
  42.                 IF DUP OBJ\-> DROP TYPE 0 \=/
  43.                 THEN DUP \->STR
  44.                 ELSE p
  45.                 END "'PV" p + "'" + OBJ\-> STO+ RCL "'L" p + i + "'" + OBJ\->
  46.                  SWAP OVER STO DUP SEND CLLCD "Wait ..." 4 DISP
  47.                 IF DUP VTYPE 15 ==
  48.                 THEN PGDIR
  49.                 ELSE PURGE
  50.                 END
  51.               NEXT
  52.             ELSE DROP
  53.             END
  54.           ELSE DROP
  55.           END
  56.         NEXT CLLCD "Archiving main mem ..." 4 DISP :IO: BACKUP ARCHIVE
  57.          DONE p EVAL
  58.       \>>
  59.     \>>
  60.   RECOVER
  61.     \<< STD PATH \-> p
  62.       \<< L
  63.         IFERR CCHECK
  64.         THEN p EVAL ERRM DOERR
  65.         END
  66.         IF NEEDED MEM >
  67.         THEN p EVAL 1 DOERR
  68.         END OPENIO 0 2
  69.         FOR p "'PV" p + "'" + OBJ\-> RCL OBJ\->
  70.           IF DUP 1 \>=
  71.           THEN 1 SWAP
  72.             FOR i CLLCD \-> n
  73.               \<< "L" p + i + DUP KGET "'" DUP ROT + SWAP + OBJ\-> DUP RCL DUP
  74.                 IF n TYPE 0 ==
  75.                 THEN 0 p \->TAG STO
  76.                 ELSE n OBJ\-> STO
  77.                 END CLLCD "Wait ..." 4 DISP
  78.                 IF TYPE 15 ==
  79.                 THEN PGDIR
  80.                 ELSE PURGE
  81.                 END
  82.               \>>
  83.             NEXT
  84.           ELSE DROP
  85.           END
  86.         NEXT FLAGS STOF DONE p EVAL
  87.       \>>
  88.     \>>
  89.   M 300
  90.   S 10
  91.   L
  92.     DIR
  93.       FLAGS { # 3808000400100FF0h # 0h }
  94.       PV0 { 0 0 }
  95.       PV1 { }
  96.       PV2 { }
  97.       NEEDED 2955
  98.       CCHECK
  99.         \<<
  100.           IF -40 FS?
  101.           THEN -40 CF "Clock display disabled\010Retry operation" DOERR
  102.           END
  103.         \>>
  104.       DONE
  105.         \<< FINISH CLOSEIO CLLCD "DONE" 1 DISP 1 FREEZE
  106.           IF -56 FC?
  107.           THEN 1400 .1 BEEP
  108.           END
  109.         \>>
  110.     END
  111. END
  112.